var GameBase = require('geoGameBase');
var EventTypes = require('geoEventTypes');

cc.Class({
    extends: GameBase,
    properties:{
        handleScore:{
            default: true,
            tooltip:'关卡结束时，是否处理积分',
        },
    },
    /**
     * 关卡逻辑结束时调用。
     * 子类重载改方法时，应在最后调用父类方法
     * @param {boolean} result 关卡是否成功通过
     * @param {boolean} destroyByMain 是否由主逻辑销毁关卡
     * @param {float} delayEnd 延时结束关卡，默认为0，不会影响加分的执行
     * @param {boolean} handleScore 是否处理积分，若为false，则不进行积分处理
     */
    endLevel(result, destroyByMain, delayEnd, handleScore){
        // 屏蔽场景交互
        this.maskInteraction(true);
        //
        handleScore = (handleScore === undefined) ? this.handleScore : handleScore;
        delayEnd = delayEnd || 0;
        // 传递参数
        this.data.levelEnd = {
            result: result,
            destroy: destroyByMain,
            handleScore: handleScore,
            delay: delayEnd,
        }
        // 触发事件
        this.node.emit(EventTypes.LevelEnd);
    },
});
